home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_13_1986_Transactor_Publishing.d64
/
sprite numbers
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
99 lines
1 rem sprite number demo v4
2 rem james a. lisowksi, 902 willow ln.
3 rem s. milwaukee, wi 53172
4 rem public domain software
5 :
10 rem----set up sprite zero
20 :
30 vs=53248:rem first vic-ii register
40 sx=vs:sy=vs+1:rem sprite x/y reg.
50 sn=vs+21:rem sprite enable reg.
60 poke2040,13:rem sprite mem area 13
79 :
80 rem remove rem in line 90 for
82 rem un-expanded character size
90 pokevs+29,1:pokevs+23,1
100 :
110 rem----set up number patterns
120 :
130 rem turn interupt off, switch rom in
140 poke56334,peek(56334)and254
142 poke1,peek(1)and251
145 :
150 rem start of rom number patterns
160 cs=53248+8*48
170 rem start of ram storage area
180 cm=49152
190 rem take character info from rom
200 rem and place in into protected ram
210 fori=0to80:pokecm+i,peek(cs+i):next
220 rem turn interupt on, switch rom out
230 poke1,peek(1)or4
240 poke56334,peek(56334)or1
250 :
300 rem----clear sprite pattern
310 fori=832to894:pokei,0:next
320 :
330 :
500 rem==== demo mainline ====
510 :
520 rem set msb of x position to off
530 pokevs+16,0
540 :
550 rem set sprite x/y position to 100
560 pokesx,100:pokesy,100
570 :
580 rem clear and title the screen
590 print"[147]sprite number demo 1234567890"
600 :
610 rem set sprite random sprite color
620 pokevs+39,rnd(0)*15
630 :
640 rem get a 1 to 3 digit positive #
650 nu=int(rnd(0)*999)
660 :
670 rem goto the sprite subroutine,
680 rem turn number nu into a sprite
690 rem and display it in motion
700 gosub 1000
710 :
720 rem wait a while, then try another
730 rem number
740 ford=1000to2000step5:pokesx,d/10
745 nextd:pokesn,0:pokesx,100:goto610
750 :
760 rem===== end of mainline ====
770 :
780 :
900 rem----sprite number subroutine
910 :
920 rem---turn the sprite off
1000 poke sn,0
1010 :
1020 rem---clear part of sprite
1030 fori=832to852:pokei,0:nexti
1040 :
1050 rem---make nu a string 3 characters
1060 rem in length with leading spaces
1070 nu$=right$(" "+str$(nu),3)
1080 :
1090 rem---select the 3 digit
1100 rem characters, one at a time
1110 rem and change the character into
1120 rem a number nd, skip spaces
1130 for ch=0to2:in=0
1140 ch$=mid$(nu$,(ch+1),1)
1150 if ch$=" "then 1230
1160 nd=val(ch$)
1170 rem---get the character pattern for
1180 rem this number and place it in
1190 rem the proper sprite memory area
1200 for i=(832+ch)to(855+ch)step3
1210 poke i,peek(in+cm+nd*8):in=in+1
1220 next i
1230 next ch
1240 :
1250 rem---turn finished sprite on and
1260 rem return to main program
1270 poke sn,1:return